package com.lyj.sc.aliyuntianchi.test20220715;

/**
 * @program: code-random
 * @description:   验证回文字符串 Ⅱ
 * 给定一个非空字符串 s，最多删除一个字符。判断是否能成为回文字符串。
 * @author: lyj
 * @create: 2022-07-15 09:18
 * @version: 1.0
 * @Modifier By:
 **/
public class test1 {
    public boolean validPalindrome(String s) {
        //双指针法
        char[] chars = s.toCharArray();
        int n  = 0;
        int count = 1;
        for (int i = chars.length - 1; i >= 0; i--) {
            if(i==n){
                return true;
            }
            if(chars[n]!=chars[i]){
                //判断截断之中是否有回文
                return huiwenchuan(s,n+1,i)||huiwenchuan(s,n,i-1);
            }
            n++;
        }
        return true;
    }

    public Boolean huiwenchuan(String s,int low,int high){
        //回文串
        int j =low;
        for(int i =high ; i>low;i--){
            if(i==j){
                return true;
            }
            if(s.charAt(i)!=s.charAt(j)){
                return false;
            }
            j++;
        }
        return true;
    }
}
